Tình huống áp dụng Abstract factory

- Phía client sẽ không phụ thuộc vào việc những sản phẩm được tạo ra như thế nào.

- Ứng dụng sẽ được cấu hình với một hoặc nhiều họ sản phẩm.

- Các đối tượng cần phải được tạo ra như một tập hợp để có thể tương thích với nhau

- Chúng ta muốn cung cấp một tập các lớp và chúng ta muốn thể hiện các ràng buộc, các mối quan hệ giữa chúng mà không phải là các thực thi của chúng(interface). Trong trường hợp không định nghĩa được các lớp trừu tượng Product thì việc tạo ra các ConcreteProduct theo mẫu này là rất khó hoặc không thể

- Mỗi khi có thêm một "sản phẩm" ta lại phải định nghĩa thêm một lớp "sản xuất"